import { ui } from "./../ui/layaMaxUI";
/**
 * 本示例采用非脚本的方式实现，而使用继承页面基类，实现页面逻辑。在IDE里面设置场景的Runtime属性即可和场景进行关联
 * 相比脚本方式，继承式页面类，可以直接使用页面定义的属性（通过IDE内var属性定义），比如this.tipLbll，this.scoreLbl，具有代码提示效果
 * 建议：如果是页面级的逻辑，需要频繁访问页面内多个元素，使用继承式写法，如果是独立小模块，功能单一，建议用脚本方式实现，比如子弹脚本。
 */
export default class GameUI extends ui.test.TestSceneUI {
    constructor() {
        super();
        // res/atlas/LayaScene_SplashScene/Conventional/SplashScene.ls
        // res/atlas/LayaScene_SampleScene/Conventional/SampleScene.ls
        Laya.Scene3D.load('res/atlas/LayaScene_SplashScene/Conventional/SplashScene.ls', Laya.Handler.create(this, (scene:Laya.Scene3D)=>{
            this.addChild(scene)
            this.setChildIndex(scene, 0)

            // 获取摄像机
            var camera = scene.getChildByName('Main Camera') as Laya.Camera
            // 设置背景颜色
            camera.clearFlag = Laya.BaseCamera.CLEARFLAG_SOLIDCOLOR
            camera.clearColor = new Laya.Vector4(0.5, 0.5, 0, 1)

            // 创建射线
            var ray = new Laya.Ray(new Laya.Vector3(0, 0, 0), new Laya.Vector3(0, 0, 0))
            var point = new Laya.Vector2
            point.x = Laya.stage.mouseX
            point.y = Laya.stage.mouseY
            camera.viewportPointToRay(point, ray)
        }))
        
        this.startBtn.once(Laya.Event.MOUSE_UP, this, ()=>{
            Laya.Scene.open('test/StageScene.scene', true)
        })
        this.exitBtn.once(Laya.Event.MOUSE_UP, this, ()=>{
            window.close()
        })
    }
}